import { defineStore } from 'pinia';

export const useDictStore = defineStore('dict', {
   state: () => ({
      dict: {}, // 字典
   }),
   actions: {
      setDict(dict) {
         this.dict = dict;
      },
      getDict(key, multiple) {
         if (multiple) {
            // 正则匹配 ，；-
            let keys = key.split(/,|;|-/);
            let result = [];
            keys.forEeach((item) => {
               result.push(this.dict.hasOwnProperty(item) ? this.dict[item] : 'N/A');
            });
            return result;
         } else {
            return this.dict.hasOwnProperty(key) ? this.dict[key] : 'N/A';
         }
      },
   },
   // actions, getters 区别：
   // actions：用于定义修改 state 的方法，可以包含异步操作
   // getters：用于定义计算属性，可以返回 state 的值，也可以返回其他计算结果
   // actions 和 getters 都可以包含异步操作，但是 actions 可以包含异步操作，而 getters 不能包含异步操作
   // actions 和 getters 都可以返回值，但是 actions 返回的是修改后的 state，而 getters 返回的是计算结果
});
